const ffi = require('ffi-napi');

// console.log(__dirname + '\\dll/MyDLL.dll');
// const Mydll_LIB = ffi.Library(__dirname + '\\dll/MyDLL.dll',{
//     'Add':['float',['float','float']],
//     'Hello':['string',[]],
//     'StrLength':['int',['string']]
//   });

console.log(__dirname + '\\dll/fzk_fc2.dll');
const FZK_FC2_LIB = ffi.Library(__dirname + '\\dll/fzk_fc2.dll',{
   /**
    * @method fzk_fc_init 初始化库的缓存数据
    * @param {void}
    * @returns {int} 结果状态码
    * **/
  'fzk_fc_init': ['int',[]],


  /**
   * @method fzk_fc_connect 连接发卡器
   * @param {void}
   * @returns {int} 连接发卡器结果状态码  0 成功， -1失败
   * **/
  'fzk_fc_connect': ['int',[]],


  /**
   * @method fzk_fc_write 写数据
   * @param {Uint8Array,int,int,int} //写的数据类型，写的数据的长度，appid, fileId
   * @returns {int}
   * **/
  'fzk_fc_write': ['int',['char*','int','short','short']],  //写数据


   /**
    * @method fzk_fc_read 读数据
    * @param {int,int,int} appid,fileId,size
    * @returns {Uint8Array}
    * **/
  'fzk_fc_read': ['char*',['short','short','int']],


  /**
   * @method fzk_fc_changeKey 更改卡的密钥
   * @param {int,Uint8Array} appId,pKey
   * @returns {int}
   * **/
  'fzk_fc_changeKey':['int',['short','char*']],


  /**
   * @method fzk_fc_setDllKey 设置当前应用的密钥
   * @param {string} 设置DLL当前应用的密钥
   * @returns {int}
   * **/
  'fzk_fc_setDllKey':['int',['string']],


  /**
   * @method fzk_fc_addApp //加应用，默认是30 01，默认大小1024，先加app再加文件
   * @param {int,int} appId,appLen
   * @returns {int}
   * **/
  'fzk_fc_addApp':['int',['short','int']],


  /**
   * @method fzk_fc_addFile //加文件，默认是00 18，默认大小是48，先加APP再加文件
   * @param {int,int} fileId，fileLen 文件id及文件长度
   * @returns {int}
   * **/
  'fzk_fc_addFile':['int',['short','int']],


  /**
   * @method fzk_fc_recycle //回收卡
   * @param {void}
   * @returns {int} 0为成功
   * **/
  'fzk_fc_recycle':['int',[]],


  /**
   * @method fzk_fc_getUid //读取卡片UID
   * @param {void}
   * @returns {int} 0 为失败
   * **/
  'fzk_fc_getUid':['int',[]],
});